﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using Computer_Manager.BUS;
using Computer_Manager.DTO;

namespace Computer_Manager.GUI
{
    public partial class frmEditProduct : DevExpress.XtraEditors.XtraForm
    {
        DTO_product dto_pro = new DTO_product();
        DTO_categories dto_cate = new DTO_categories();
        BUS_product bus_pro = new BUS_product();
        BUS_categories bus_cate = new BUS_categories();
        frmProduct obj = (frmProduct)Application.OpenForms["frmProduct"];
        private int id_pro;

        public int Id_pro
        {
            get { return id_pro; }
            set { id_pro = value; }
        }

        public frmEditProduct()
        {
            InitializeComponent();
        }

        private void frnEditProduct_Load(object sender, EventArgs e)
        {
            dto_pro.id_pro = id_pro;
            txtCode.Text = bus_pro.GetByID(dto_pro).Rows[0][1].ToString();
            txtName.Text = bus_pro.GetByID(dto_pro).Rows[0][2].ToString();
            txtPriceIn.Text = Convert.ToDouble(bus_pro.GetByID(dto_pro).Rows[0][3].ToString()).ToString("#,###");
            txtAmountIn.Text = bus_pro.GetByID(dto_pro).Rows[0][4].ToString();
            string ngay = bus_pro.GetByID(dto_pro).Rows[0][6].ToString();
            txtDate.Text = Convert.ToDateTime(ngay).Day + "/" + Convert.ToDateTime(ngay).Month + "/" + Convert.ToDateTime(ngay).Year;
            txtPriceOut.Text = Convert.ToDouble(bus_pro.GetByID(dto_pro).Rows[0][5].ToString()).ToString("#,###");
            string id_cat = bus_pro.GetByID(dto_pro).Rows[0][7].ToString();
            dto_cate.id_cat = int.Parse(id_cat);
            DataTable dt = bus_cate.GetByID(dto_cate);
            dto_cate.parent_id = 0;
            cmbCategories.DataSource = bus_cate.GetByParentId(dto_cate);
            cmbCategories.DisplayMember = "name_cat";
            cmbCategories.ValueMember = "id_cat";
            cmbCategories.SelectedValue = dt.Rows[0][3];
            dto_cate.parent_id = int.Parse(cmbCategories.SelectedValue.ToString());
            cmbProduct.DataSource = bus_cate.GetByParentId(dto_cate);
            cmbProduct.DisplayMember = "name_cat";
            cmbProduct.ValueMember = "id_cat";
            cmbProduct.SelectedValue = int.Parse(id_cat);
            //txtPriceIn.Properties.DisplayFormat.FormatString = String.Format("{0:0,0 vnđ}",txtPriceIn.Text);
        }

        private void btnEditPro_Click(object sender, EventArgs e)
        {
            if (txtCode.Text == "" || txtName.Text == "" || txtPriceIn.Text == "" || txtAmountIn.Text == "" || txtPriceOut.Text == "" || txtDate.Text == "")
            {

                if (txtCode.Text == "")
                {
                    txtCode.Properties.NullValuePrompt = "Vui lòng nhập mã sản phẩm";
                    txtCode.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtCode.Properties.NullValuePrompt = "";
                    txtCode.BackColor = Color.White;
                }
                /////////
                if (txtName.Text == "")
                {
                    txtName.Properties.NullValuePrompt = "Vui lòng nhập tên sản phẩm";
                    txtName.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtName.Properties.NullValuePrompt = "";
                    txtName.BackColor = Color.White;
                }
                ////////
                if (txtPriceIn.Text == "")
                {
                    txtPriceIn.Properties.NullValuePrompt = "Vui lòng nhập giá nhập vào của sản phẩm";
                    txtPriceIn.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtPriceIn.Properties.NullValuePrompt = "";
                    txtPriceIn.BackColor = Color.White;
                }
                if (txtAmountIn.Text == "")
                {
                    txtAmountIn.Properties.NullValuePrompt = "Vui lòng nhập số lượng nhập";
                    txtAmountIn.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtAmountIn.Properties.NullValuePrompt = "";
                    txtAmountIn.BackColor = Color.White;
                }
                if (txtPriceOut.Text == "")
                {
                    txtPriceOut.Properties.NullValuePrompt = "Vui lòng nhập giá nhập vào của sản phẩm";
                    txtPriceOut.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtPriceOut.Properties.NullValuePrompt = "";
                    txtPriceOut.BackColor = Color.White;
                }
                if (txtDate.Text == "")
                {
                    txtDate.Properties.NullValuePrompt = "Vui lòng nhập ngày nhập vào của sản phẩm";
                    txtDate.BackColor = Color.NavajoWhite;
                }
                else
                {
                    txtDate.Properties.NullValuePrompt = "";
                    txtDate.BackColor = Color.White;
                }
                MessageBox.Show("Bạn chưa nhập đầy đủ thông tin");
            }
            else
            {
                dto_pro.id_pro = id_pro;
                dto_pro.codes_pro = txtCode.Text;
                dto_pro.name_pro = txtName.Text;
                dto_pro.price_in = txtPriceIn.Text;
                dto_pro.amount_in = int.Parse(txtAmountIn.Text);
                dto_pro.price_out = txtPriceOut.Text;
                DateTime ngay = Convert.ToDateTime(txtDate.Text);
                dto_pro.date_in = ngay;
                dto_pro.id_cat = int.Parse(cmbProduct.SelectedValue.ToString());
                try
                {
                    bus_pro.product_Update(dto_pro);
                    XtraMessageBox.Show("Sửa thành công");
                    this.Dispose();
                    this.Close();
                    obj.loaddata();
                }
                catch (Exception){}
            }
        }

        private void txtPriceIn_Leave(object sender, EventArgs e)
        {
            try
            {

                if (txtPriceIn.Text.Equals("0"))

                    return;

                double temp = Convert.ToDouble(txtPriceIn.Text);

                txtPriceIn.Text = temp.ToString("#,###");

            }

            catch (Exception ex)
            {

                MessageBox.Show("Lỗi:" + ex);

            }
        }

        private void txtPriceOut_Leave(object sender, EventArgs e)
        {
            try
            {

                if (txtPriceOut.Text.Equals("0"))

                    return;

                double temp = Convert.ToDouble(txtPriceOut.Text);

                txtPriceIn.Text = temp.ToString("#,###");

            }

            catch (Exception ex)
            {

                MessageBox.Show("Lỗi:" + ex);

            }
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            dto_pro.id_pro = id_pro;
            txtCode.Text = bus_pro.GetByID(dto_pro).Rows[0][1].ToString();
            txtName.Text = bus_pro.GetByID(dto_pro).Rows[0][2].ToString();
            txtPriceIn.Text = Convert.ToDouble(bus_pro.GetByID(dto_pro).Rows[0][3].ToString()).ToString("#,###");
            txtAmountIn.Text = bus_pro.GetByID(dto_pro).Rows[0][4].ToString();
            string ngay = bus_pro.GetByID(dto_pro).Rows[0][6].ToString();
            txtDate.Text = Convert.ToDateTime(ngay).Day + "/" + Convert.ToDateTime(ngay).Month + "/" + Convert.ToDateTime(ngay).Year;
            txtPriceOut.Text = Convert.ToDouble(bus_pro.GetByID(dto_pro).Rows[0][5].ToString()).ToString("#,###");
            string id_cat = bus_pro.GetByID(dto_pro).Rows[0][7].ToString();
            dto_cate.id_cat = int.Parse(id_cat);
            DataTable dt = bus_cate.GetByID(dto_cate);
            dto_cate.parent_id = 0;
            cmbCategories.DataSource = bus_cate.GetByParentId(dto_cate);
            cmbCategories.DisplayMember = "name_cat";
            cmbCategories.ValueMember = "id_cat";
            cmbCategories.SelectedValue = dt.Rows[0][3];
            dto_cate.parent_id = int.Parse(cmbCategories.SelectedValue.ToString());
            cmbProduct.DataSource = bus_cate.GetByParentId(dto_cate);
            cmbProduct.DisplayMember = "name_cat";
            cmbProduct.ValueMember = "id_cat";
            cmbProduct.SelectedValue = int.Parse(id_cat);
        }

        private void frmEditProduct_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.Dispose();
        }
    }
}